#ifndef PROC_H
#define PROC_H
// EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX,EIP,CS,FLAGS
typedef struct regmsg
{
	unsigned int EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX,EIP,CS,FLAGS;
}REGMSG;

typedef struct procstack
{
	REGMSG reg_msg;
	unsigned int data_bp;
	unsigned int data_sp;
	unsigned int code_bp;
	unsigned int code_sp;
	unsigned int running;
	unsigned int last_proc;
	unsigned int next_proc;
}__attribute__ ((packed)) PROCSTACK;

typedef struct procmsg
{
	unsigned int proc_now;
	unsigned int proc_count;
	PROCSTACK proc_member[64];
}__attribute__ ((packed)) PROCMSG;

void proc_install(const void *addr, const unsigned int eip_0);

int proc_run();

int create_proc(void *func_addr);
#endif
